package br.com.almanach.cadastro;

import br.com.almanach.dominio.cadastro.Ministracao;
import br.com.almanach.dominio.cadastro.Musica;
import br.com.almanach.jsf.JSFUtil;
import br.com.almanach.negocio.cadastro.MinistracaoNegocio;
import br.com.almanach.negocio.cadastro.MusicaNegocio;
import br.com.almanach.padrao.Editar;
import java.io.Serializable;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.ViewScoped;

@ManagedBean(name="editarMinistracao")
@ViewScoped
public class EditarMinistracao extends Editar implements Serializable {

    @ManagedProperty(value="#{editarEvento}")
    private EditarEvento editarEvento;

    @EJB
    private MinistracaoNegocio ministracaoNegocio;

    @EJB
    private MusicaNegocio musicaNegocio;
    
    private Ministracao objeto;

    @PostConstruct
    public void construtor(){
        String id = JSFUtil.getParametro("id");
        if(id!=null){
            objeto = ministracaoNegocio.buscar(new Integer(id));
        }
    }

    @Override
    public String salvar() {
        if(this.objeto.getId()==null){
            this.objeto.setEvento(editarEvento.getObjeto());
            ministracaoNegocio.incluir(this.objeto);
        }else{
            ministracaoNegocio.alterar(this.objeto);
        }
        return null;
    }


    public void setMinistracaoNegocio(MinistracaoNegocio ministracaoNegocio) {
        this.ministracaoNegocio = ministracaoNegocio;
    }

    public void setMusicaNegocio(MusicaNegocio musicaNegocio) {
        this.musicaNegocio = musicaNegocio;
    }

    public Ministracao getObjeto() {
        if(objeto==null){
            objeto = new Ministracao();
            objeto.setMusica(new Musica());
        }
        return objeto;
    }

    public void setObjeto(Ministracao objeto) {
        this.objeto = objeto;
    }

    public List<Musica> autoCompletarMusica(String nome) {
        return musicaNegocio.buscaPorNome(nome);
    }

    public void setEditarEvento(EditarEvento editarEvento) {
        this.editarEvento = editarEvento;
    }

    public String voltar(){
        return null;
    }

}